//	Эта переменная говорит о том, что файл загружен браузером.
var resoLoaded = true;

//	Функция сигнализирует, что этот .js загрузился
var ROSNONotes = "";
var ROSNOInfo = {
	name: "РОСНО",
	price: 0,
	discountPrice: 0,
	notesToDisplay: new Array(0),
	notesSpecial: '',
	notes: "",
	rating: 0,
	realFr: 0,
	frArray: new Array(0),
	countSpecialNotes: 0,
	calc: function () {
		calculateROSNO();
	}
};
var ROSNOXML = false;
//	Функция расчета стоимости КАСКО фирмы РЕСО

function calculateROSNO() {
	//		alert("ROSNO expanded="+expanded);
	//		alert("ROSNO cascoFinished="+cascoFinished);
	if (!ROSNOXML) $.ajax({
		url: "rosno/rosno_cars.xml" + '?' + (rand % 1000),
		success: function (response) {
			ROSNOXML = response;
			calcROSNO(ROSNOXML);
		}
	});
	else calcROSNO(ROSNOXML);
}

function calcROSNO(response) {
	// 	log(arguments.callee.toString().replace(/function\s+(\w+)\((.*\n.*)*/,"$1") + ' - start');
	var frArr = new Array();
	var USD = 30.52;
	ROSNOPrice = 0;
	//		Ищем машину
	ROSNOInfo.notesToDisplay = new Array(0);
	ROSNOInfo.notesSpecial = '';
	ROSNOXml = $(response);
	kXml = ROSNOXml.find('Ki:first');
	ROSNOXml = ROSNOXml.find('carList:first');
	countSpecialNotes = 0;
	try {
		if (ROSNOXml.find("m>n").filter(function () {
			return $(this).text().toUpperCase() == manufacturerName.toUpperCase()
		}).length != 0) {
			if (ROSNOXml.find("m>n").filter(function () {
				return $(this).text().toUpperCase() == manufacturerName.toUpperCase()
			}).parent().find("c>n").filter(function () {
				return $(this).text().toUpperCase() == carName.toUpperCase()
			}).length != 0) {
				carXML = ROSNOXml.find("m>n").filter(function () {
					return $(this).text().toUpperCase() == manufacturerName.toUpperCase()
				}).parent().find("c>n").filter(function () {
					return $(this).text().toUpperCase() == carName.toUpperCase()
				}).parent();
			} else if (ROSNOXml.find("m>n").filter(function () {
				return $(this).text().toUpperCase() == manufacturerName.toUpperCase()
			}).parent().find("c>n").filter(function () {
				return $(this).text() == "*"
			}).length != 0) {
				carXML = ROSNOXml.find("m>n").filter(function () {
					return $(this).text().toUpperCase() == manufacturerName.toUpperCase()
				}).parent().find("c>n").filter(function () {
					return $(this).text() == "*"
				}).parent();
			} else {
				carXML = ROSNOXml.find("m>n").filter(function () {
					return $(this).text() == "*"
				}).parent().find("c>n").filter(function () {
					return $(this).text() == "*"
				}).parent();
			}
		} else carXML = ROSNOXml.find("m>n").filter(function () {
			return $(this).text() == "*"
		}).parent().find("c>n").filter(function () {
			return $(this).text() == "*"
		}).parent();
		//	базовая информация о машине
		var risk = carXML.find('spb>r').text();
		var group = carXML.find('spb>g').text();
		var typeHishDiscount = parseInt(carXML.find('spb>u').text());
		var kReg = parseFloat(carXML.find('spb>reg').text()); //андеррайтерский коэффициент
		var age = parseInt(carAge.replace('carAge', ''));
		var minT = parseFloat(kXml.find('minT>spb>c>a' + age).eq(0).text());
		var r2 = parseFloat(carXML.find('spb>r2').text()); //региональный коэффициент
		if (isNaN(r2)) r2 = 1;
		if (group == '') group = 7;
		if (isNaN(kReg)) kReg = 1;
		if (isNaN(typeHishDiscount)) typeHishDiscount = 3;
		var fr;
		var kSto = 1;
		var kAgeExp;
		var kAgeExpMin = 0;
		var drAId, drEid;
		var selectedAlarm;
		//	Базовый тариф
		var bt;
		//	alert(minT);
		if (!rus) {
			var priceUSD = parseInt(price) / USD;
			var kU = kXml.find('kUsherbForeign>spb>pUSD').filter(function () {
				return parseInt($(this).find('v:first').text()) >= priceUSD
			}).first();
			if (kU.length == 0) kU = kXml.find('kUsherbForeign>spb>pUSD').filter(function () {
				return $(this).find('v:first').text() == "*"
			});
			kU = parseFloat(kU.find('c>a' + age + '>v').text());
		} else {
			var kU = kXml.find('kUsherbHome>spb>pRUR').filter(function () {
				return parseInt($(this).find('v:first').text()) >= parseInt(price)
			}).first();
			if (kU.length == 0) kU = kXml.find('kUsherbHome>spb>pRUR').filter(function () {
				return $(this).find('v:first').text() == "*"
			});
			kU = parseFloat(kU.find('c>a' + age + '>v').text());
		}
		//	водители
		if (multiDrive) {
			kAgeExp = parseFloat(kXml.find('AgeExp>spb>e>v').filter(function () {
				return $(this).text() == '0'
			}).parent().find('a').filter(function () {
				return $(this).find('v').text() == '18-20'
			}).find('k').eq(0).text());
		} else {
			var drA, drE;
			for (var i = 0; i < driversListForCalc.length; i++) {
				drA = parseInt(driversListForCalc.eq(i).find('.f-driver-c2').eq(0).find('input').eq(0).val());
				drE = parseInt(driversListForCalc.eq(i).find('.f-driver-c2').eq(0).find('input').eq(1).val());
				if (drA < 21) drAId = '18-20';
				else if (drA < 23) drAId = '21-22';
				else if (drA < 25) drAId = '23-24';
				else if (drA < 27) drAId = '25-26';
				else if (drA < 29) drAId = '27-28';
				else if (drA < 32) drAId = '29-31';
				else if (drA < 37) drAId = '32-36';
				else if (drA < 42) drAId = '37-41';
				else if (drA < 47) drAId = '42-46';
				else drAId = 'm46';
				if (drE < 1) drEid = '0';
				else if (drE < 2) drEid = '1';
				else if (drE < 3) drEid = '2';
				else if (drE < 4) drEid = '3';
				else if (drE < 5) drEid = '4';
				else if (drE < 6) drEid = '5';
				else if (drE < 7) drEid = '6';
				else if (drE < 8) drEid = '7';
				else if (drE < 10) drEid = '8-9';
				else if (drE < 15) drEid = '10-14';
				else drEid = 'm14';

				var res = parseFloat(kXml.find('AgeExp>spb>e').filter(function () {
					return $(this).find('v:first').text() == drEid
				}).find('a').filter(function () {
					return $(this).find('v:first').text() == drAId
				}).find('k').text());
				if (res > kAgeExpMin) kAgeExpMin = res;
			}
			kAgeExp = kAgeExpMin;
		}
		//alert(kAgeExp);
		var oplata = $('input:checked').filter("[name='oplata']").val();
		oplata = parseFloat(kXml.find('oplata>spb>c' + oplata + '>v').eq(0).text());


		//		Способ возмещения ущерба
		var selectedStoa = $('#advancedForm').find('input:checked').filter("[name='sto']").val();
		kSto = 1;
		fr = 1;
		realFr = 0;
		if (!rus) {
			fr = kXml.find('frForeign>spb>e>v').filter(function () {
				return parseInt($(this).text()) * USD >= parseInt(price)
			}).first();
			if (fr.length == 0) fr = kXml.find('frForeign>spb>e>v').filter(function () {
				return $(this).text() == '*'
			}).eq(0);
			fr.parent().find('a>v').each(function () {
				frArr.push(parseInt(parseInt($(this).text()) * USD))
			});
			fr = fr.parent().find('a>v').filter(function () {
				return parseInt($(this).text()) * USD < selectedFr
			}).last();
			realFr = parseInt(parseInt(fr.text()) * USD);
			fr = parseFloat(fr.parent().find('k').text());
		} else {
			fr = kXml.find('frRus>spb>e>v').filter(function () {
				return parseInt($(this).text()) >= parseInt(price)
			}).first();
			if (fr.length == 0) fr = kXml.find('frRus>spb>e>v').filter(function () {
				return $(this).text() == '*'
			}).eq(0);
			fr.parent().find('a>v').each(function () {
				frArr.push(parseInt($(this).text()))
			});
			fr = fr.parent().find('a>v').filter(function () {
				return parseInt($(this).text()) < selectedFr
			}).last();
			realFr = parseInt(parseInt(fr.text()));
			fr = parseFloat(fr.parent().find('k').text());
		}
		if (isNaN(fr) || fr == 0) {
			fr = 1;
			realFr = 0;
		}
		var kAlarm = 1;
		var kHish = parseFloat(kXml.find('kHishenie>spb>c>g' + (group - 1) + '>v').text());
		var totalHish = parseInt(kHish * parseInt(price) / 100 * kAlarm);
/*
	if(group=='')
		group=7;
	if(isNaN(kReg))
		kReg=1;
	if(isNaN(typeHishDiscount))
		typeHishDiscount=3;
	risk
*/

		//		окончательный расчет  Мне сейчас главное не замучить себя ожиданием. И никого не убить из окружающих
		var discount = (100 - parseFloat($('#sk5').text())) / 100;

		ROSNOInfo.price = (parseInt(price) * kU / 100 * kAgeExp * kSto * fr * kReg * r2 + totalHish) * oplata;
		//alert('disc='+discount+'\nprice='+ROSNOInfo.price+'\nr2='+r2+'\nkReg='+kReg+'\nminT='+minT+'\nku='+kU+'\nAgeExp='+kAgeExp+'\noplata='+oplata+'\ngroup='+group+'\nkHish'+kHish+'\ntotalHish='+totalHish+'\nkSto='+kSto+'\nfr='+fr);	
		if (!rus) {
			if (ROSNOInfo.price / parseInt(price) * 100 < minT) ROSNOInfo.price = parseInt(parseInt(price) * minT / 100);
		}
		//	currCar.find('th').eq(0).text()
		ROSNOInfo.discountPrice = ROSNOInfo.price * discount;
		ROSNOInfo.notes = ROSNONotes;
		ROSNOInfo.rating = 5;
		if (!realFr) realFr = 0;
		ROSNOInfo.realFr = realFr;
		ROSNOInfo.notesSpecial += "Размер франшизы " + addSpaces(ROSNOInfo.realFr.toString()) + " руб.";
		ROSNOInfo.notesToDisplay.push("<span style='margin:0px; padding:0px; margin-left:24px;; position:relative; top:5px;'>Франшиза: " + addSpaces(ROSNOInfo.realFr.toString()) + " руб.</span><br>");
		ROSNOInfo.notesSpecial = 'Особенности расчета страховой компании РОСНО:<br>' + ROSNOInfo.notesSpecial;



		if (priceChanged) {
			ROSNOInfo.frArray = new Array(0);
			for (var i = 1; i <= frArr.length; i++) {
				var frImg = {
					value: null,
					image: null
				}
				if ((parseInt(price) / 100 * i) <= (slider2.maxVal + 1)) {
					try {
						frImg.value = frArr[i - 1];
						frImg.image = $("<img src='red.png' title='Франшиза " + addSpaces(frImg.value.toString()) + " руб. для страховой компании РОСНО'>");
						ROSNOInfo.frArray.push(frImg);
					} catch (eee) {
						alert('err=' + eee)
					};
				}
			}
			for (var i = 0; i < ROSNOInfo.frArray.length; i++) {
				var fromLeft = parseInt(ROSNOInfo.frArray[i].value / slider2.maxVal * slider2.width);
				ROSNOInfo.frArray[i].image.css("position", "absolute").css("left", fromLeft + "px").css("top", "0px").click(function () {
					$(this).parent().click();
				}).focus(function () {
					$(this).blur()
				}).appendTo($("#barsliderDiv1").eq(0));
				//			ROSNOInfo.frArray[i].image.css("position","absolute").css("left",fromLeft+"px").css("top","0px").click(function(){$(this).parent().click();}).focus(function(){$(this).blur()}).clone().appendTo($("#barsliderDiv2").eq(0));
			}
		}
		if ($('#corporatePerson').attr('checked')) {
			ROSNOInfo.price = parseInt('a');
			ROSNOInfo.discountPrice = ROSNOInfo.price;
		}
		counterCasco(new Object);
	} catch (eee) {
		alert(eee + '\n' + eee.name);
		if ($('#corporatePerson').attr('checked')) {
			ROSNOInfo.price = parseInt('a');
			ROSNOInfo.discountPrice = ROSNOInfo.price;
		}
		counterCasco(new Object);
	}

	// 	log(arguments.callee.toString().replace(/function\s+(\w+)\((.*\n.*)*/,"$1") + ' - end');
}